//
//  HomeViewController.swift
//  阿酷微博
//
//  Created by co on 16/3/10.
//  Copyright © 2016年 王南侠. All rights reserved.
//

import UIKit

/// 可重用标识符
private let CZStatusCellID = "CZStatusCellID"
class HomeViewController: RooteViewController {

    override func viewDidLoad() {
        // 设置刷新控件
        setupRefreshControl()
        
        super.viewDidLoad()
        

        // 注册可重用cell
        tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: CZStatusCellID)
        
        // 设置访客视图信息
        // 如果用户登录为空那么后面的什么也不做
        visitorView?.setupInfo(message: "关注一些人，回这里看看有什么惊喜")

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        //  在IOS 6.0之后，默认不在清除 view .在ios 6.0之前，收到内存警告
        //  ‘如果当前视图没有显示’，会被从内存中销毁 下次需要用的时候，会子调用 loadView 创建 view
        //  只需要释放能够被再次创建的资源，例如 从网络家族的数据数组
        
        // 如果当前视图正在显示，windows不为nil
        if self.view.window == nil {
            
            // 1. 清理数组
            self.dataList.removeAll()
            // 2.刷新数据
            self.loadData()
        }
    }
    
    override func loadData() {
        
        // 默认索引
        let defaultIndex = 100
        // 判断是否上拉刷新
        let isPullup = refreshControllor.isPullupRefresh
        
        refreshControllor.beginRefreshing()

        
        // 异步加载网络数据
        dispatch_async(dispatch_get_global_queue(0, 0)) { () -> Void in
            
            NSThread.sleepForTimeInterval(2.0)
            // 获取第0条数据值
            let pulldownIndex = self.dataList.first ?? defaultIndex
            // 获取数组最后一条数据
            let pullupIndex = self.dataList.last ?? 0
            
            var arryM = [Int]()
            if isPullup {
                for i in 0..<10{
                    arryM.append(pullupIndex - i - 1)
                }
                
            } else {
                for i in (0..<10).reverse() {
                    arryM.append(i + pulldownIndex + 1)
                    
                }
            }
            
            if isPullup {
                self.dataList += arryM
            } else {
                self.dataList = arryM + self.dataList
            }
            
             // 更新UI
            dispatch_async(dispatch_get_main_queue(), { () -> Void in
                // 关闭刷新
                self.refreshControllor.endRefreshing()
                // 刷新数据
                self.tableView.reloadData()
                
            })
        }
    }
    
    // MARK: - 私属性
    private lazy var dataList = [Int]()
}


extension HomeViewController{
    
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return dataList.count
    }
    
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        
        let cell = tableView .dequeueReusableCellWithIdentifier(CZStatusCellID, forIndexPath: indexPath)
        
        cell.textLabel?.text = dataList[indexPath.row].description
        
        return cell
    }
    
}
